{#include main fluid=true}
  {#style}
   .annotation {
     color: gray;
     font-style: italic;
   }
   span.larger-badge {
     font-size: 0.9em;
   }
   span.app-class {
     cursor:pointer;
     color:blue;
     text-decoration:underline;
   }
  {/style}

  {#script}
    $(document).ready(function(){
      if (!ideKnown()) {
        return;
      }
      $(".class-candidate").each(function() {
        var className = $(this).text();
        if (appClassLocation(className)) {
          $(this).addClass("app-class");
        }
      });

      $(".app-class").on("click", function() {
        openInIDE($(this).text());
      });
    });

  {/script}

  {#title}Decorators{/title}
  {#body}
  <div class="alert alert-primary alert-dismissible fade show" role="alert" data-timer="30000">
    Decorators are sorted by the decorator class name in ascending order. However, application decorators go first. 
    <button type="button" class="close" data-dismiss="alert" aria-label="Close">
        <span aria-hidden="true">&times;</span>
    </button>
  </div>
  <table class="table table-striped">
   <thead class="thead-dark">
    <tr>
      <th scope="col">#</th>
      <th scope="col">Decorator class</th>
      <th scope="col">Priority</th>
      <th scope="col">Delegate Type</th>
      <th scope="col">Delegate Qualifiers</th>
    </tr>
   </thead>
   <tbody>
    {#for decorator in info:devBeanInfos.decorators}
    <tr>
      <td>{decorator_count}.</td>
      <td><span class="class-candidate">{decorator.decoratorClass}</span></td>
      <td><span class="badge rounded-pill bg-info text-light larger-badge" title="Priority: {decorator.priority}">{decorator.priority}</span></td>
      <td><span class="class-candidate">{decorator.delegateType}</span></td>
      <td>
       {#for q in decorator.delegateQualifiers}
        <span class="annotation" title="Binding: {q}">{q.simpleName}</span><br/>
       {/for}
      </td>
    {/for}
   </tbody>
  </table>
  {/body}
{/include}
